/*
 * Copyright (c) 1994-2017, Joyoung Stock CO.LTD.
 * The FWJR Project.
 * All Rights Reserved.
 */

package com.rest.business;

import com.rest.constant.JDConstant;
import com.rest.response.AccountRespnonse;
import com.rest.response.AuthOauthVo;
import com.rest.response.BaseResponse;
import com.rest.response.BaseStringResponse;
import com.rest.response.ChatResponse;
import com.rest.response.CheckDetailResponse;
import com.rest.response.CheckResponse;
import com.rest.response.CloudListResponse;
import com.rest.response.ConsulationDetailResponse;
import com.rest.response.ConsulationResponse;
import com.rest.response.ConsultOrderDetailResponse;
import com.rest.response.ConsultOrderFinishResponse;
import com.rest.response.ConsultOrderListResponse;
import com.rest.response.ConsultResponse;
import com.rest.response.ConsumablesAddDto;
import com.rest.response.ContactFindVO;
import com.rest.response.DepartmentResponse;
import com.rest.response.DiagnoseOrderDetailResponse;
import com.rest.response.DicResponse;
import com.rest.response.DignoseIdResponse;
import com.rest.response.DocInfoResponse;
import com.rest.response.DocInfoVO;
import com.rest.response.DocOrderBaseVO;
import com.rest.response.DocOrderListVO;
import com.rest.response.DocScheduleVO;
import com.rest.response.DocStatusCountResponse;
import com.rest.response.DoctorResponse;
import com.rest.response.DrugResponse;
import com.rest.response.GroupResponse;
import com.rest.response.HospitalResponse;
import com.rest.response.IMListResponse;
import com.rest.response.ImageConsultationListResponse;
import com.rest.response.JCResponse;
import com.rest.response.JYResponse;
import com.rest.response.KaYiUrlResponse;
import com.rest.response.LoginResponse;
import com.rest.response.MedicineDetailResponse;
import com.rest.response.MedicineResponse;
import com.rest.response.MeetingResponse;
import com.rest.response.MineResponse;
import com.rest.response.MouldListResponse;
import com.rest.response.MouldResponse;
import com.rest.response.NurseItemsVo;
import com.rest.response.OauthStatusResponse;
import com.rest.response.PatientListResponse;
import com.rest.response.PatientProjectDTO;
import com.rest.response.PatientResponse;
import com.rest.response.PicUploadResponse;
import com.rest.response.Prescription2Response;
import com.rest.response.PrescriptionDetailResponse;
import com.rest.response.PrescriptionListResponse;
import com.rest.response.PrescriptionResponse;
import com.rest.response.PrescriptionStatusDto;
import com.rest.response.QueryProtocolResponse;
import com.rest.response.RecordResponse;
import com.rest.response.ReferralResponse;
import com.rest.response.RegistrationDetailResponse;
import com.rest.response.ScheduleResponse;
import com.rest.response.SickListResponse;
import com.rest.response.SignBean;
import com.rest.response.TeamDetailResponse;
import com.rest.response.TeamListResponse;
import com.rest.response.TimeResponse;
import com.rest.response.UserInfoBean;
import com.rest.response.VersionResponse;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface IRestAPI {

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPLOAD_PAYMENT_FILE)
    Observable<PicUploadResponse> uploadFile(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.METHOD_UPLOAD_VIDEO)
    Observable<PicUploadResponse> uploadVideo(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_LOGIN)
    Observable<LoginResponse> login(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_PASSWORD)
    Observable<BaseResponse> updatePassword(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_REFERRAL_BASE_LIST)
    Observable<ReferralResponse> getReferralBaseList(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_REFERRAL_PROFESSOR_LIST)
    Observable<ReferralResponse> getReferralProList(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CONSULATION_BASE_LIST)
    Observable<ConsulationResponse> getConsultationBaseList(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CONSULATION_DETAIL)
    Observable<ConsulationDetailResponse> getConsultationDetail(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_REFERRAL_HISTORY_BASE_LIST)
    Observable<ReferralResponse> getReferralHistoryBaseList(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_REFERRAL_HISTORY_PRO_LIST)
    Observable<ReferralResponse> getReferralHistoryProList(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CONSULATION_HISTORY_BASE_LIST)
    Observable<ConsulationResponse> getConsultationHistoryBaseList(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CONSULATION_HISTORY_PRO_LIST)
    Observable<ConsulationResponse> getConsultationHistoryProList(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_FEEDBACK)
    Observable<BaseResponse> feedback(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_HOSPITAL)
    Observable<HospitalResponse> getHospital(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DEPARTMENT)
    Observable<DepartmentResponse> getDepartment(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOCTOR)
    Observable<DoctorResponse> getDoctor(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_SCHEDULE_DATE)
    Observable<ScheduleResponse> getSchedule(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_TIME)
    Observable<TimeResponse> getTime(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_BY_ID_CARD)
    Observable<PatientResponse> getPatientByIDCard(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_REFERRAL)
    Observable<BaseResponse> addReferral(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_CONSULTATION)
    Observable<BaseResponse> addConsultation(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_EDIT_CONSULTATION)
    Observable<BaseResponse> editConsultation(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_HOSPITAL_CONSULTATION)
    Observable<HospitalResponse> getHospitalConsultation(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DEPARTMENT_CONSULTATION)
    Observable<DepartmentResponse> getDepartmentConsultation(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOCTOR_CONSULTATION)
    Observable<DoctorResponse> getDoctorConsultation(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_USERINFO)
    Observable<DocInfoVO> getUserInfo(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SAVE_USERINFO)
    Observable<BaseResponse> saveUserInfo(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_EDIT_DOCTOR_STATUS)
    Observable<BaseResponse> editDoctorStatus(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_MEETING)
    Observable<MeetingResponse> addMeeting(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MEETING)
    Observable<MeetingResponse> getMeeting(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_DEL_MEETING)
    Observable<MeetingResponse> delMeeting(@Body RequestBody Body);

    @GET(JDConstant.HOST + JDConstant.METHOD_DOWNLOAD_PIC)
    Observable<ResponseBody> downloadFile(@Query("url") String url);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_SAVE_CONSULTATION)
    Observable<BaseResponse> saveConsultation(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_START_CONSULTATION)
    Observable<BaseResponse> startConsultation(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DIAGNOSE_ID)
    Observable<DignoseIdResponse> getDiagnoseID(@Body RequestBody Body);

    @POST(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_SET_DIAGNOSE_ID)
    Observable<BaseResponse> setDiagnoseID(@Body RequestBody Body);

    @POST(JDConstant.IMG_CONSULTATION_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_IMAGE_CONSULTATION)
    Observable<ImageConsultationListResponse> getImageConsultationList(@Body RequestBody Body);

    @GET(JDConstant.IMG_CONSULTATION_HOST + JDConstant.BASE_URL + JDConstant.MEHTOD_GET_KAYI_URL)
    Observable<KaYiUrlResponse> getKaYiUrl(@Query("kayiPascId") String kayiPascId);

    @POST(JDConstant.IMG_CONSULTATION_HOST + JDConstant.BASE_URL + JDConstant.MEHTOD_GET_YJ_CONSULTATION)
    Observable<ImageConsultationListResponse> getYJConsultationList(@Body RequestBody Body);

    @GET(JDConstant.IMG_CONSULTATION_HOST + JDConstant.BASE_URL + JDConstant.METHOD_AGREE_CONSULTATION)
    Observable<BaseResponse> agreeConsultation(@Query("dispatchDiagId") String dispatchDiagId, @Query("diagPascId") String diagPascId, @Query("dispatchType") String dispatchType, @Query("flag") String flag);

    @GET(JDConstant.IMG_CONSULTATION_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_KAYI_YJ_URL)
    Observable<KaYiUrlResponse> getKaYiYJUrl(@Query("dispatchType") String dispatchType, @Query("kayiPascId") String kayiPascId, @Query("pascType") String pascType, @Query("kayiCheckPart") String kayiCheckPart, @Query("docId") String docId, @Query("docName") String docName);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MESSAGE_CODE)
    Observable<BaseResponse> getMessageCode(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_REGISTER)
    Observable<BaseResponse> register(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_IM_LIST)
    Observable<IMListResponse> queryIMList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_HISTORY_IM_LIST)
    Observable<IMListResponse> queryHistoryIMList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DEPARTMENT_LIST)
    Observable<DoctorResponse> getDepartmentList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOCTOR_LIST)
    Observable<DoctorResponse> getDoctorList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_REGISTRATION_DETAIL)
    Observable<RegistrationDetailResponse> getRegistrationDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CHAT_LIST)
    Observable<ChatResponse> getChatList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SAVE_PATIENT_STATE)
    Observable<BaseResponse> savePatientState(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_START_MEETING)
    Observable<MeetingResponse> startMeeting(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.SAVE_MEETING)
    Observable<MeetingResponse> saveMeeting(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SEND_MEETING_ID)
    Observable<BaseResponse> sendMeetingId(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CHECK_LIST)
    Observable<CheckResponse> getCheckList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PRESCRIPTION)
    Observable<PrescriptionResponse> getPrescription(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.DEL_PRESCRIPTION)
    Observable<BaseResponse> delPrescription(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_PRESCRIPTION_LIST)
    Observable<PrescriptionListResponse> queryPrescriptionList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PRESCRIPTION)
    Observable<Prescription2Response> getPrescription2(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHECK)
    Observable<BaseResponse> check(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_MOULD_LIST)
    Observable<MouldResponse> getMouldList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MEDICINE_LIST)
    Observable<MedicineResponse> getMedicineList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DIC_LIST)
    Observable<DicResponse> getDicList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SAVE_PRESCRIPTION_MODEL)
    Observable<BaseResponse> savePrescriptionModel(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SAVE_PRESCRIPTION)
    Observable<BaseStringResponse> savePrescription(@Body RequestBody Body);


    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PRESCRIPTION_MODEL)
    Observable<MouldResponse> getPrescriptionModel(@Query("prescriptionId") String prescriptionId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PRESCRIPTION_MODEL)
    Observable<MouldListResponse> getPrescriptionModelList(@Query("prescriptionId") String prescriptionId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_REFUSE_PRESCRIPTION)
    Observable<IMListResponse> getRefusePrescription(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_FINISH_DIAGNOSE)
    Observable<BaseResponse> finishDiagnose(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_SICK_LIST)
    Observable<SickListResponse> getSickList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ACCEPT_CONSULTATION)
    Observable<BaseResponse> accpetConsultation(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MINE_INFO)
    Observable<MineResponse> getMineInfo(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ACCEPT_DIAGNOSE)
    Observable<BaseResponse> acceptDiagnose(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOC_INFO)
    Observable<DocInfoResponse> getDocInfo(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOC_COUNT_STATUES)
    Observable<DocStatusCountResponse> getDocCountStatus(@Body RequestBody Body);


    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_PATIENT_GROUP)
    Observable<BaseResponse> updatePatientGroup(@Query("tbPatientId") String tbPatientId, @Query("id") String id);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_TOP)
    Observable<BaseResponse> updateTop(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_TEAM_LIST)
    Observable<TeamListResponse> getTeamList(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_TEAM_DETAIL)
    Observable<TeamDetailResponse> getTeamDetail(@Query("id") String id);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOCTOR_BY_NAME)
    Observable<DoctorResponse> getDoctorByName(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_UMENG_DEVICE)
    Observable<BaseResponse> updateUmengDevice(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_TEAM_MEMBER)
    Observable<BaseResponse> addTeamMember(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_DEL_TEAM_MEMBER)
    Observable<BaseResponse> delTeamMember(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_TEAM_DETAIL)
    Observable<BaseResponse> updateTeamDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_FINISH_MEETING)
    Observable<BaseResponse> finishMeeting(@Body RequestBody Body);


    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_DIAGNOSE_ORDER_DETAIL)
    Observable<DiagnoseOrderDetailResponse> diagnoseOrderDetail(@Body RequestBody Body);


    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERYPROTOCOL)
    Observable<QueryProtocolResponse> queryProtocol(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CLOUD_LIST)
    Observable<CloudListResponse> getCloudList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SENDSMS)
    Observable<BaseResponse> sendSms(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SAVE_CASE)
    Observable<BaseResponse> saveCase(@Body RequestBody Body);


    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHANGE_FLAG)
    Observable<BaseResponse> changeFlag(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_VERSION)
    Observable<VersionResponse> getVersion(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_GROUP_LIST)
    Observable<GroupResponse> getGroupList();

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PATIENT_INFO)
    Observable<PatientResponse> getPatientInfo(@Query("id") String id);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_GROUP_INFO_LIST)
    Observable<GroupResponse> getGroupInfo();

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_GROUP)
    Observable<BaseResponse> addGroup(@Query("groupName") String groupName);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_DEL_GROUP)
    Observable<BaseResponse> delGroup(@Query("id") String id);


    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_RECORD)
    Observable<RecordResponse> getRecord(@Query("id") String id, @Query("size") String size, @Query("current") String current);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CASE)
    Observable<PrescriptionResponse> getCase(@Query("diagnoseId") String id);


    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_BACK_PRESCRIPTION)
    Observable<BaseResponse> backPrescription(@Query("id") String id, @Query("type") String type);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_GROUP_LIST)
    Observable<PatientListResponse> searchPatientList(@Query("condition") String condition);


    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_DEL_MOULD)
    Observable<BaseResponse> delMould(@Query("prescriptionId") String id);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MEDICINE_DETAIL)
    Observable<MedicineDetailResponse> queryWesternById(@Query("id") String id);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERYROUTEANDSITEBYID)
    Observable<DicResponse> queryRouteAndSiteById(@Query("type") String type, @Query("id") String id, @Query("helpCode") String helpCode);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERYPRICE)
    Observable<BaseStringResponse> queryPrice(@Query("id") String id, @Query("number") String number);

    @Headers("Origin:" + JDConstant.YSG_HOST_MINIO)
    @POST(JDConstant.YSG_HOST_MINIO + JDConstant.METHOD_GETPRESIGNEDURL)
    Observable<BaseStringResponse> getPresignedUrl(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST_MINIO + JDConstant.METHOD_UPLOAD_PAYMENT_FILE_MINIO)
    Observable<PicUploadResponse> uploadFileTb(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MEDICINE_ORDER_DETAIL)
    Observable<PrescriptionDetailResponse> getMedicineOrderDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PATIENT_ACCOUNT)
    Observable<AccountRespnonse> getPatientAccount(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_WAITLISTCOUNT)
    Observable<BaseStringResponse> getWaitListCount();

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ORDERLISTCOUNT)
    Observable<BaseStringResponse> getOrderListCount();

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_MYSCHEDULE)
    Observable<DocScheduleVO> getMySchedule(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADDCONTAC)
    Observable<BaseResponse> addContact(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_FINDCONTACT)
    Observable<ContactFindVO> findContact();

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ONEKEYALARM)
    Observable<BaseResponse> oneKeyAlarm(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CURRENTPATIENTLIST)
    Observable<DocOrderBaseVO> currentPatientList();

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CANCELFORDOC)
    Observable<BaseResponse> cancelForDoc(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATEDOCSETOUT)
    Observable<BaseResponse> updateDocSetOut(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ORDERLIST)
    Observable<DocOrderListVO> getOrderList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_WAITLIST)
    Observable<DocOrderListVO> getWaitList(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_APPOINTMENTDETAIL)
    Observable<PatientProjectDTO> appointmentDetail(@Query("appointmentId") String appointmentId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATEFORORDER)
    Observable<BaseResponse> updateForOrder(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_HISORDERLIST)
    Observable<DocOrderListVO> getHisOrderList(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ITEMLIST)
    Observable<NurseItemsVo> nurseItemList(@Query("chargeItemType") String chargeItemType);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADDCONSUMABLES)
    Observable<ConsumablesAddDto> addConsumables(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ORDERDONECOUNT)
    Observable<BaseStringResponse> getOrderDoneCount(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CANCELCOUNT)
    Observable<BaseStringResponse> getCancelCount(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CANCELCONSUMABLES)
    Observable<BaseResponse> cancelConsumables(@Query("orderId") String orderId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATETIME)
    Observable<BaseResponse> updateTime(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_SIGN_STATUS)
    Observable<UserInfoBean> querySignStatus(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_USER_SIGNATURE)
    Observable<SignBean> userSignature(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_PRESCRIPTION_STATUS)
    Observable<PrescriptionStatusDto> queryPrescriptionStatus(@Query("prescriptionId") String prescriptionId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SUBMIT_PRESCRIPTION_SECOND)
    Observable<BaseStringResponse> submitPrescriptionSecond(@Query("id") String prescriptionId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_AUTH_GET_OAUTH_STATUS)
    Observable<OauthStatusResponse> queryOauthStatus();

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_AUTH_OAUTH)
    Observable<AuthOauthVo> authOauth(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_LOGIN_BYQYWX)
    Observable<LoginResponse> wxLogin(@Query("code") String code);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_WESTERN_SEARCH)
    Observable<DrugResponse> searchDrug(@Query("keyWords") String keyWord, @Query("current") int page);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_VALIDATE_INFO2PASS)
    Observable<BaseResponse> validateInfo(@Query("code") String code, @Query("phone") String phone, @Query("userName") String userName);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_USERDOC_EDIT_PASSWORD)
    Observable<BaseResponse> modifyPassword(@Query("userName") String docCode, @Query("password") String password);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_PAY_REFUND)
    Observable<BaseResponse> refund(@Body RequestBody Body);


    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.CONSULT_ORDER)
    Observable<ConsultResponse> getConsultListCount();

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.CONSULT_ORDER_LIST)
    Observable<ConsultOrderListResponse> queryConsultOrderList(@Query("nurseId") String nurseId, @Query("status") String status, @Query("size") String size);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.CONSULT_ORDER_DETAIL)
    Observable<ConsultOrderDetailResponse> getConsultOrderDetailInfo(@Query("diagnoseId") String diagnoseId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.CONSULT_ORDER_FINISH)
    Observable<ConsultOrderFinishResponse> consultOrderFinish(@Query("diagnoseId") String diagnoseId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.ACCEPT_CONSULT_ORDER)
    Observable<BaseResponse> acceptConsultOrder(@Query("diagnoseId") String diagnoseId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.REFUSE_CONSULT_ORDER)
    Observable<BaseResponse> refuseConsultOrder(@Query("diagnoseId") String diagnoseId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.CONSULT_ORDER_REFUND)
    Observable<BaseResponse> consultOrderRefund(@Body RequestBody requestBody);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ELECTRONIC_SIGNATURE)
    Observable<BaseStringResponse> electronicSignature(@Field("id") String preId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_JC_LIST)
    Observable<JCResponse> getJCListData();

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_JY_LIST)
    Observable<JYResponse> getJYListData();

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CREATE_BILLING)
    Observable<BaseResponse> billing(@Body RequestBody requestBody);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHECKOUT_DETAIL)
    Observable<CheckDetailResponse> getCheckoutDetail(@Path("id") String id);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHANGE_STATUS)
    Observable<BaseStringResponse> changeStatus(@Path("id") String id, @Path("type") int type);
}





